マップチップとの当たり判定では、プレイヤーの中心部分にマップチップがあれば「衝突している」と判定していますが、プレイヤーの大きさを考慮してもう少し広い範囲に当たり判定を設けるには、次のようにします。
Playerに、当たり判定専用のメソッドを作成します。
Player(一部)
\hitToChip(x,y) {
//(x,y)の位置から上下左右10ピクセルの場所のうち、どれかがマップチップに触れていればtrue
return $map.getOnAt(x-10,y)>-1 ||
$map.getOnAt(x+10,y)>-1 ||
$map.getOnAt(x,y+10)>-1 ||
$map.getOnAt(x,y-10)>-1;
}
$map.getOnAtを呼び出している部分も変更します。
Main(一部)
if(hitToChip(x,y)){
//マップチップにぶつかっていたら、移動前の座標に戻す
x=sx;y=sy;
}